package com.woniuxy.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.woniuxy.entity.AllUser;
import com.woniuxy.entity.DTO.UserGrowthDTO;
import com.woniuxy.entity.DTO.UserQueryDTO;
import com.woniuxy.util.PageResult;

import java.util.Date;
import java.util.List;

/**
 * @Author pml
 * @Date 2025/7/15 19:00
 * @Description TODO
 * 用户服务接口
 * 定义用户相关的业务方法
 */
public interface IUserService extends IService<AllUser> {
    /**
     * 分页多条件查询用户列表
     * @param queryDTO 查询条件和分页参数
     * @return 分页结果对象
     */
    PageResult<AllUser> getUserList(UserQueryDTO queryDTO);

    /**
     * 统计总用户数
     * @return 用户总数
     */
    Long countTotalUsers();

    /**
     * 统计今日新增用户数
     * @return 今日新增用户数
     */
    Long countNewUsersToday();

    /**
     * 获取用户增长趋势数据
     * 按日期分组统计新增用户数量
     * @param startDate 起始日期
     * @param endDate 结束日期
     * @return 按日期排序的用户增长数据列表
     */
    List<UserGrowthDTO> getUserGrowthTrend(Date startDate, Date endDate);


}